unit clsFaseProcesso;

interface

uses Dm, dbtables, biblio;

type
  TFaseProcesso = class(TObject)
  private
    Fase_codigo: string;
  public
    Fase_descricao: string;
    Fase_Tipo: String[2];
    function Gravar(p_Fase_codigo: string): Byte;
    function Recuperar(p_Fase_codigo: string): Byte;
    function Recuperar2(p_Fase_codigo: string): Byte;
    function Excluir(p_Fase_codigo: string): Byte;
    procedure Consultar(var p_q: TQuery; p_nome: string);
  end;

implementation

function TFaseProcesso.Gravar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(DmInt);
  tq.databasename := dmint.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('SELECT * FROM FaseProcesso where Fase_codigo=:k_Fase_codigo');
  tq.parambyname('k_Fase_codigo').asstring := strzero(p_Fase_codigo, 2);
  tq.open;
  if tq.eof then begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('INSERT INTO FaseProcesso VALUES(:k_Fase_codigo,:k_Fase_descricao,:k_Fase_Tipo)');
  end else begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('UPDATE FaseProcesso SET Fase_descricao=:k_Fase_descricao, Fase_Tipo =:k_Fase_Tipo WHERE Fase_codigo=:k_Fase_codigo');
  end;
  tq.parambyname('k_Fase_codigo').asstring := strzero(p_Fase_codigo, 2);
  tq.parambyname('k_Fase_descricao').asstring := Fase_descricao;
  tq.parambyname('k_Fase_Tipo').AsString:= Fase_Tipo;
  tq.close;
  tq.execsql;
  result := 1;
  tq.close;
  tq.Free;
end;

function TFaseProcesso.Recuperar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := DmInt.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM FaseProcesso where Fase_codigo=:k_Fase_codigo');
  tq.Params[0].asstring := strzero(p_Fase_codigo, 2);
  tq.open;
  Fase_codigo := p_Fase_codigo;
  if tq.eof then begin
    Fase_descricao := '';
    Fase_Tipo:= '';
    Result := 0;
  end else begin
    Fase_descricao := tq.fieldbyname('Fase_descricao').asstring;
    Fase_Tipo:= tq.fieldbyname('Fase_Tipo').AsString;
    Result := 1;
  end;
  tq.Close;
  tq.Free;
end;

function TFaseProcesso.Recuperar2;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := DmInt.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM FaseProcesso where Fase_codigo=:k_Fase_codigo');
  tq.Params[0].asstring := p_Fase_codigo;
  tq.open;
  Fase_codigo := p_Fase_codigo;
  if tq.eof then begin
    Fase_descricao := '';
    Fase_Tipo:= '';
    Result := 0;
  end else begin
    Fase_descricao := tq.fieldbyname('Fase_descricao').asstring;
    Fase_Tipo:= tq.FieldByName('Fase_Tipo').AsString;
    Result := 1;
  end;
  tq.Close;
  tq.Free;
end;

function TFaseProcesso.Excluir;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('DELETE FROM FaseProcesso WHERE Fase_codigo=:k_Fase_codigo');
  tq.parambyname('k_Fase_codigo').asstring := strzero(p_Fase_codigo, 2);
  tq.execSQL;
  Result := 1;
  tq.close;
  tq.Free;
end;

procedure TFaseProcesso.Consultar;
begin
  p_q.sql.Clear;
  p_q.Params.Clear;
  p_q.sql.add('Select * from FaseProcesso where Fase_descricao>=:k_Fase_descricao order by Fase_descricao');
  p_q.parambyname('k_Fase_descricao').asstring := p_nome;
end;

end.

